<?php

namespace app\admin\validate;

use think\Validate;

class PermissionCategory extends Validate
{
    /**
     * 定义验证规则
     * 格式：'字段名'	=>	['规则1','规则2'...]
     *
     * @var array
     */	
	protected $rule = [
        'ids|标识列表' => 'require|array',
	    'id|标识' => 'integer',
	    'name|分组名' => 'chsDash',
        'status|状态' => 'in:0,1,2',
        'description|描述' => 'max:100',
        'start_create_at|创建时间开始范围' => 'date',
        'end_create_at|创建时间结束范围' => 'date'
    ];
    
    /**
     * 定义错误信息
     * 格式：'字段名.规则名'	=>	'错误信息'
     *
     * @var array
     */	
    protected $message = [];

    /**
     * 场景验证
     * @var []
     */
    protected $scene = [
        'index' => ['name','status','start_create_at','end_create_at']
    ];

    /**
     * 定义验证用户名唯一性场景验证
     * @return $this
     */
    public function sceneOnly()
    {
        return $this->only(['id','name'])
            ->append('name', 'require');
    }

    /**
     * 定义新增场景验证
     * @return $this
     */
    public function sceneCreate()
    {
        return $this->only(['name','description','status'])
            ->append('name', 'require|unique:permission_category')
            ->append('status', 'require');
    }

    /**
     * 定义新增场景验证
     * @return $this
     */
    public function sceneUpdate()
    {
        return $this->only(['name','description','status'])
            ->append('name', 'require|unique:permission_category')
            ->append('status', 'require');
    }

    /**
     * 定义批量删除场景验证
     * @return $this
     */
    public function sceneDestory()
    {
        return $this->only(['ids']);
    }

}
